package nl.hu.vakantievibes.client;

import java.util.ArrayList;
import java.util.Date;

import nl.hu.vakantievibes.domain.Boeking;
import nl.hu.vakantievibes.domain.Carpool;
import nl.hu.vakantievibes.domain.Gebruiker;
import nl.hu.vakantievibes.domain.Reis;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ServerCallInterfaceAsync {
	public void processLogin(String username, String password, AsyncCallback<Gebruiker> callback);
	public void registerUser(String username, String password, AsyncCallback<Boolean> callback);
	public void setAdmin(String geb, boolean b, AsyncCallback<Boolean> callback);
	public void setCarpoolStatus(Carpool c, String s, AsyncCallback<Boolean> callback);
	public void annuleerBoeking(Boeking b, AsyncCallback<Boolean> callback);
	public void getAlleReizen(AsyncCallback<ArrayList<Reis>> callback);
	public void getAlleCarpools(Gebruiker g, AsyncCallback<ArrayList<Carpool>> callback);
	public void getAlleCarpoolsPas(Gebruiker g, AsyncCallback<ArrayList<Carpool>> callback);
	public void getAlleBoekingen(AsyncCallback<ArrayList<Boeking>> callback);
	public void zoekReis(String naam, AsyncCallback<Reis> callback);
	public void addReis(String nm, String ld, String ps, double prs, Date vdtm, Date adtm, String oms, AsyncCallback<Boolean> callback);
	public void addBoeking(Reis r, Gebruiker g, String nm, String tus, String an, String strn,
			String hn, String wp, String pc, String em, int tel, int dag, int maand, int jaar,
			boolean a, boolean f, int zPl, int fPl, AsyncCallback<Boolean> callback);
	public void verstuurBericht(Gebruiker bestuurder, Gebruiker passagier, Reis r, String bericht, AsyncCallback<Boolean> callback);
}
